---
title: "ATLS Analytics 2017 - 2018"
output:
flexdashboard::flex_dashboard:
orientation: rows
social: menu
source_code: embed
---
```{r setup, include=FALSE}
library(flexdashboard)
require(tidyverse)
require(readxl)
require(RColorBrewer)
require(plotly)
john_theme <- theme(text=element_text(size = 14, family="Times New Roman"),
axis.text = element_text(size = 14),
panel.background = element_rect(fill="white"),
panel.grid.minor = element_line(color="grey90"),
panel.grid.major = element_line(color="grey90"),
plot.margin = unit(c(0.5,0.5,0.5,0.5), "cm"),
plot.caption = element_text(size = 9))
df <- read_excel("~/Desktop/dec18report.xlsx", skip = 1)
df2 <- df %>%
gather("quarter2", "value", Q1_17:Q4_18)
df2$quarter2 <- factor(df2$quarter2, levels = c("Q1_17", "Q2_17", "Q3_17", "Q4_17", "Q1_18", "Q2_18", "Q3_18", "Q4_18"))
df2$quarters3 <- str_sub(df2$quarter2, 1, 2)
df2$year <- str_sub(df2$quarter2, 4, 5)
```
Traffic & Engagement
=======================================================================
Row
-----------------------------------------------------------------------
### Page Views
```{r}
a <- df2 %>%
filter(quarters == "total_views" | quarters == "unique_views") %>%
ggplot(aes(quarter2, value)) +
geom_point(aes(color = quarters), size = 3) +
geom_line(aes(group = quarters, color = quarters), size = 1) +
scale_y_continuous(limits = c(0, 30000), breaks = seq(0, 30000, 5000)) +
john_theme +
scale_color_manual(name = NULL, values = c("dodgerblue3", "green3")) +
labs(x = NULL, y = NULL) +
geom_vline(xintercept = 4.5)
ggplotly(a)
```
### New vs. Returning Visitors
```{r}
b <- df2 %>%
filter(quarters == "new_visitor_percent_sessions" | quarters == "return_visitor_percent_sessions") %>%
mutate(quarters = factor(quarters, labels = c("New Visitor", "Return Visitor"))) %>%
ggplot(aes(quarter2, value)) +
geom_col(aes(fill = quarters)) +
john_theme +
scale_fill_manual(name = NULL, values = c("dodgerblue3", "green3")) +
labs(x = NULL, y = NULL)
ggplotly(b)
```
Row
-----------------------------------------------------------------------
### Average Time on Page (seconds)
```{r}
c <- df2 %>%
filter(quarters == "avg time on page") %>%
ggplot(aes(quarters3, value)) +
geom_col(aes(fill = year), position = "dodge") +
scale_fill_manual(name = "Year", values = c(brewer.pal(4, "Blues")[3], brewer.pal(4, "Blues")[4])) +
scale_y_continuous(limits = c(0, 180), breaks = seq(0, 180, 30)) +
john_theme +
geom_hline(yintercept = 60, linetype = "dashed", alpha = 0.3) +
geom_hline(yintercept = 120, linetype = "dashed", alpha = 0.3) +
labs(x = NULL, y = NULL)
ggplotly(c)
```
### Bounce Rate (% of one-page sessions)
```{r}
d <- df2 %>%
filter(quarters == "bounce_rate") %>%
ggplot(aes(quarters3, value)) +
geom_col(aes(fill = year), position = "dodge") +
scale_fill_manual(name = "Year", values = c(brewer.pal(4, "Blues")[3], brewer.pal(4, "Blues")[4])) +
scale_y_continuous(limits = c(0, 100)) +
john_theme +
labs(x = NULL, y = NULL)
ggplotly(d)
```
Audience
=======================================================================
Row
-----------------------------------------------------------------------
### How new visitors find our site...
```{r}
a2 <- df2 %>%
filter(startsWith(quarters, "new_from")) %>%
mutate(quarters = factor(quarters, levels = c("new_from_organic", "new_from_direct", "new_from_social", "new_from_referral", "new_from_email"), labels = c("Organic", "Direct", "Social", "Referral", "Email"))) %>%
ggplot(aes(quarter2, value)) +
geom_point(aes(color = quarters)) +
geom_line(aes(group = quarters, color = quarters), size = 1) +
john_theme +
geom_vline(xintercept = 4.5, alpha = 0.3, size = 3) +
scale_color_brewer(name = NULL, palette = "Set2") +
labs(title = "How new visitors find our site...", x = NULL, y = "Users")
ggplotly(a2)
```
### How return visitors find our site...
```{r}
b2 <- df2 %>%
filter(startsWith(quarters, "return_from")) %>%
mutate(quarters = factor(quarters, levels = c("return_from_organic", "return_from_direct", "return_from_social", "return_from_referral", "return_from_email"), labels = c("Organic", "Direct", "Social", "Referral", "Email"))) %>%
ggplot(aes(quarter2, value)) +
geom_point(aes(color = quarters)) +
geom_line(aes(group = quarters, color = quarters), size = 1) +
john_theme +
geom_vline(xintercept = 4.5, alpha = 0.3, size = 3) +
scale_color_brewer(name = NULL, palette = "Set2") +
labs(title = "How return visitors find our site...", x = NULL, y = "Users")
ggplotly(b2)
```
Row
-----------------------------------------------------------------------
### ALL USERS: Social Media Breakdown (% of sessions)
```{r}
c2 <- df2 %>%
filter(startsWith(quarters, "social")) %>%
mutate(quarters = factor(quarters, levels = c("social_twitter", "social_fb", "social_reddit"), labels = c("Twitter", "Facebook", "Reddit"))) %>%
ggplot(aes(quarter2, value)) +
geom_col(aes(fill = quarters)) +
john_theme +
scale_fill_brewer(name = NULL, palette = "Accent") +
scale_y_continuous(limits = c(0, 100)) +
labs(x = NULL, y = "% of sessions")
ggplotly(c2)
```
### ALL USERS: Device Breakdown (% of sessions)
```{r}
d2 <- df2 %>%
filter(startsWith(quarters, "device_")) %>%
mutate(quarters = factor(quarters, levels = c("device_desktop", "device_mobile", "device_tablet"), labels = c("Desktop", "Mobile", "Tablet"))) %>%
ggplot(aes(quarter2, value)) +
geom_col(aes(fill = quarters)) +
john_theme +
scale_fill_brewer(name = NULL, palette = "Pastel1") +
labs(x = NULL, y = "% of sessions")
ggplotly(d2)
```